\documentclass{article}

\usepackage{epstopdf}
\usepackage{endnotes}
\usepackage{epsfig}
\usepackage{epstopdf}
\usepackage{subfigure}
\usepackage{caption}
\usepackage{url}
\usepackage{color}
\usepackage{pgfplots,tikz}
\usepackage{wasysym}
\usepackage{listings}
\usepackage{bm}
\usepackage{relsize}
\usepackage{paralist}
\usepackage{url}
\usepackage{comment}
\usepackage{graphics}
\usepackage{datetime}
\usepackage{supertabular}

\usetikzlibrary{backgrounds}
\usetikzlibrary{patterns}

\begin{document}

\begin{figure}[t]
		\begin{tikzpicture}
			\begin{axis}
				[	
					xlabel=Threads per processor,
					ylabel=ms,
					axis y line=middle,
					axis x line=middle,
					xtick={0,1,...,100}
				]
				
				% import the correct data from a CSV file
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_1_ring_0_with_context_switch.csv};\addlegendentry{Stack Unfair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_1_ring_1_with_context_switch.csv};\addlegendentry{Stack Fair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_1_ring_0.csv};\addlegendentry{Stack Unfair}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_1_ring_1.csv};\addlegendentry{Stack Fair}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_1_ring_0_with_context_switch.csv};\addlegendentry{Queue Unfair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_1_ring_1_with_context_switch.csv};\addlegendentry{Queue Fair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_1_ring_0.csv};\addlegendentry{Queue Unfair}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_1_ring_1.csv};\addlegendentry{Queue Fair}
			\end{axis}
		\end{tikzpicture}
	\caption{1 million enqueue/dequeue of boost::lockfree::queue or push/pop boost::lockfree::stack operations. Forced context (FC) means context switch between operations. Using 1 processor.}
\end{figure}

\begin{figure}[t]
		\begin{tikzpicture}
			\begin{axis}
				[	
					xlabel=Threads per processor,
					ylabel=ms,
					axis y line=middle,
					axis x line=middle,
					xtick={0,1,...,100}
				]
				
				% import the correct data from a CSV file
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_2_ring_0_with_context_switch.csv};\addlegendentry{Stack Unfair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_2_ring_1_with_context_switch.csv};\addlegendentry{Stack Fair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_2_ring_0.csv};\addlegendentry{Stack Unfair}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_2_ring_1.csv};\addlegendentry{Stack Fair}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_2_ring_0_with_context_switch.csv};\addlegendentry{Queue Unfair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_2_ring_1_with_context_switch.csv};\addlegendentry{Queue Fair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_2_ring_0.csv};\addlegendentry{Queue Unfair}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_2_ring_1.csv};\addlegendentry{Queue Fair}
			\end{axis}
		\end{tikzpicture}
	\caption{1 million enqueue/dequeue of boost::lockfree::queue or push/pop boost::lockfree::stack operations. Forced context (FC) means context switch between operations. Using 2 processor.}
\end{figure}

\begin{figure}[t]
		\begin{tikzpicture}
			\begin{axis}
				[	
					xlabel=Threads per processor,
					ylabel=ms,
					axis y line=middle,
					axis x line=middle,
					xtick={0,1,...,100}
				]
				
				% import the correct data from a CSV file
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_3_ring_0_with_context_switch.csv};\addlegendentry{Stack Unfair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_3_ring_1_with_context_switch.csv};\addlegendentry{Stack Fair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_3_ring_0.csv};\addlegendentry{Stack Unfair}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_3_ring_1.csv};\addlegendentry{Stack Fair}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_3_ring_0_with_context_switch.csv};\addlegendentry{Queue Unfair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_3_ring_1_with_context_switch.csv};\addlegendentry{Queue Fair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_3_ring_0.csv};\addlegendentry{Queue Unfair}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_3_ring_1.csv};\addlegendentry{Queue Fair}
			\end{axis}
		\end{tikzpicture}
	\caption{1 million enqueue/dequeue of boost::lockfree::queue or push/pop boost::lockfree::stack operations. Forced context (FC) means context switch between operations. Using 3 processor.}
\end{figure}

\begin{figure}[t]
		\begin{tikzpicture}
			\begin{axis}
				[	
					xlabel=Threads per processor,
					ylabel=ms,
					axis y line=middle,
					axis x line=middle,
					xtick={0,1,...,100}
				]
				
				% import the correct data from a CSV file
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_4_ring_0_with_context_switch.csv};\addlegendentry{Stack Unfair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_4_ring_1_with_context_switch.csv};\addlegendentry{Stack Fair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_4_ring_0.csv};\addlegendentry{Stack Unfair}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-stack_processors_4_ring_1.csv};\addlegendentry{Stack Fair}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_4_ring_0_with_context_switch.csv};\addlegendentry{Queue Unfair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_4_ring_1_with_context_switch.csv};\addlegendentry{Queue Fair FC}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_4_ring_0.csv};\addlegendentry{Queue Unfair}
				\addplot table [col sep=comma,trim cells=true]{boost-lockfree-queue_processors_4_ring_1.csv};\addlegendentry{Queue Fair}
			\end{axis}
		\end{tikzpicture}
	\caption{1 million enqueue/dequeue of boost::lockfree::queue or push/pop boost::lockfree::stack operations. Forced context (FC) means context switch between operations. Using 4 processor.}
\end{figure}

\end{document}
